var express = require('express');
var router = express.Router();

//引入封装好的Query方法
const Query = require('../utils/db.js')

// const API_URL = 'http://localhost:3000'
//引入模块，并使用了简写方式的解构赋值
const { API_URL } = require('../utils/config.js')

/* GET home page. */
router.get('/', function (req, res, next) {
  res.render('index', { title: 'Express123' });
});

//这是我们的首页模块 ,

//1. 获取轮播图接口，因为是一组数组，所以带s
router.get('/banners', async (req, res) => {
  let data = {} //这是定义一个初始化对象，最终一定是要返回的前端的
  //1) 写sql
  let sql = `SELECT id,CONCAT('${API_URL}/uploads/banners/',image_src) AS image_src FROM e_banners WHERE isshow=1`

  //2) 执行sql
  let { result, err } = await Query(sql) //{result,err} 
  //3) 根据resutapi规范，包装返回的json数据格式
  /*
    {
      status:,
      msg:
      result:
    }
  */
  if (err) { //如果走此if语句，代表sql语句一定执行错误了（可能是语法有问题）
    data = { //拼接的错误数据
      status: 500,
      msg: '稍后再试'
    }
    res.send(data)
    return
  }
  data = { //拼接正确的json数据
    status: 200,
    msg: 'OK',
    result
  }
  res.send(data)
})

// 2. 首页课程列表接口：同步与精品
router.get('/courseinfo', async (req, res, next) => {

  let { type = 1 } = req.query
  let size = type == 1?8:6 //1：同步（8条）  2：精品 （6条）     3：促销（10）
  // if...else  switch...case
  let data = {}
  //1. 定义sql JWOL
  let sql = `SELECT id,cid, CONCAT('${API_URL}/uploads/courses/',image_src) AS image_src,type,title,area_name,subject_name,type_name,price FROM e_course WHERE type=${type} LIMIT ${size}`
  //2. 使用引入的Query执行sql
  let { err, result } = await Query(sql)
  //  res.send( err )
  //  return
  if (err) {
    data = {
      msg: '稍后再试',
      status: 500,
    }
    res.send(data)
    return
  }

  data = {
    msg: 'OK',
    status: 200,
    result
  }
  res.send(data)
});









//以下接口仅供参考 ，实际不用
// 首页课程列表接口：同步
router.get('/tongbus', async (req, res, next) => {
  let data = {}
  //1. 定义sql
  let sql = `SELECT id,cid, CONCAT('http://localhost:3000/uploads/courses/',image_src) AS image_src,type,title,area_name,subject_name,type_name,price FROM e_course WHERE type=1`
  //2. 使用引入的Query执行sql
  let { err, result } = await Query(sql)
  //  res.send( err )
  //  return
  if (err) {
    data = {
      msg: '稍后再试',
      status: 500,
    }
    res.send(data)
    return
  }

  data = {
    msg: 'OK',
    status: 200,
    result
  }
  res.send(data)
});

//首页课程列表接口：精品
router.get('/jingpins', async (req, res, next) => {
  let data = {}
  //1. 定义sql
  let sql = `SELECT id,cid, CONCAT('http://localhost:3000/uploads/courses/',image_src) AS image_src,type,title,area_name,subject_name,type_name,price FROM e_course WHERE type=2`
  //2. 使用引入的Query执行sql
  let { err, result } = await Query(sql)
  //  res.send( err )
  //  return
  if (err) {
    data = {
      msg: '稍后再试',
      status: 500,
    }
    res.send(data)
    return
  }

  data = {
    msg: 'OK',
    status: 200,
    result
  }
  res.send(data)
});

module.exports = router;

